#ifndef FILE_DumbAi_H
#define FILE_DumbAi_H

#include "Player.h"

class DumbAi : public Player{
public:
	DumbAi(player_t whoIAm);
	virtual GameInput play(const GameEngine& ge);
private:
	int getBranchScore(GameEngine ge, const vector_t& wishedDir, vector_t& bestMove, bool& reachedGoal);
	int getBranchScore(const GameEngine& ge, const vector_t& wishedDir);
	bool dumbBallMove(GameEngine& ge, const vector_t& direction);
	position_t bestPawnPosition(
		const GameEngine& start,
		const GameEngine& afterMoves,
		const vector_t& direction);
	/**
	 * The AI will atempt to go as far as possible in this direction.
	 */
	vector_t m_targetDirection;
	/**
	 * Set whenever a ball move was initiated, and the player needs to end
	 * the turn explicitly.
	 */
	bool m_moving;
};

#endif // FILE_DumbAi_H
